package com.example.buletooth_spp;


import java.nio.ByteBuffer;

public class BluetoothDataPack {

    public static final byte FRAME_HEADER = (byte) 0xAA;
    public static final int MAX_DATA_LENGTH = 100;

    public static byte[] packDataFrame(byte[] inputData) {
        int inputLength = inputData.length;

        if (inputLength > MAX_DATA_LENGTH) {
            return null;
            //throw new IllegalArgumentException("Data length exceeds maximum limit.");
        }

        // 计算校验和
        byte checksum = 0;
        for (byte b : inputData) {
            checksum += b;
        }
        checksum %= 256; // 确保校验和在0-255范围内

        // 创建数据帧
        ByteBuffer buffer = ByteBuffer.allocate(3 + inputLength);
        buffer.put(FRAME_HEADER);           // 帧头
        buffer.put((byte) inputLength);     // 数据长度
        buffer.put(inputData);              // 数据
        buffer.put(checksum);               // 校验和

        return buffer.array();
    }
}
